package com.dragon.modules.yuegou.entity.member;

import com.baomidou.mybatisplus.annotation.TableName;
import com.dragon.modules.yuegou.enums.member.TemplateGradeGradeRule;
import com.dragon.modules.yuegou.enums.member.TemplateSetStatus;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDateTime;

/**
 * 会员卡等级设置实体类<br>
 * 对应的表为：mem_template_grade<br>
 * 
 * @author pbuilder generated
 * @date 2022-03-02 15:18:27
 * @company sgy
 * @version 2.0
 */
@TableName("mem_template_grade")
@ApiModel(description = "会员卡等级设置")
public class TemplateGradeEntity {

    /** 主键 */
	@ApiModelProperty("主键")
	protected String id;

    /**  */
	protected String busdId;

    /** 会员卡模板设置id */
	@ApiModelProperty("会员卡模板设置id")
	protected String templateSetId;

    /** [枚举]等级规则：0-成长值-GROWTH、1-指定条件-SPECIFIED */
	@ApiModelProperty("[枚举]等级规则：0-成长值-GROWTH、1-指定条件-SPECIFIED")
	protected TemplateGradeGradeRule gradeRule;

    /** 会员等级 */
	@ApiModelProperty("会员等级")
	protected String name;

    /** 成长值范围起 */
	@ApiModelProperty("成长值范围起")
	protected Long scoreStart;

    /** 成长值范围止 */
	@ApiModelProperty("成长值范围止")
	protected Long scoreEnd;

    /** 等级编号 */
	@ApiModelProperty("等级编号")
	protected Integer serialNumber;

    /** 是否是初始等级：0-false-否、1-true-是 */
	@ApiModelProperty("是否是初始等级：0-false-否、1-true-是")
	protected Boolean origin;

    /** 是否降级  */
	@ApiModelProperty("是否降级 ")
	protected Boolean isDowngrade;

    /** 保护天数 -1代表不降级 */
	@ApiModelProperty("保护天数 -1代表不降级")
	protected Integer protectionDays;

    /** 创建人id */
	@ApiModelProperty("创建人id")
	protected String createdBy;

    /** 创建人 */
	@ApiModelProperty("创建人")
	protected String createdName;

    /** 创建时间 */
	@ApiModelProperty("创建时间")
	protected LocalDateTime createdTime;

    /** 修改人id */
	@ApiModelProperty("修改人id")
	protected Long modifyBy;

    /** 修改人 */
	@ApiModelProperty("修改人")
	protected String modifyName;

    /** 修改时间 */
	@ApiModelProperty("修改时间")
	protected LocalDateTime modifyTime;

    /** 是否删除：0-false-未删除、1-true-已删除 */
	@ApiModelProperty("是否删除：0-false-未删除、1-true-已删除")
	protected Boolean del;

    /** 删除人ID */
	@ApiModelProperty("删除人ID")
	protected String delBy;

    /** 删除时间 */
	@ApiModelProperty("删除时间")
	protected LocalDateTime delTime;

	@ApiModelProperty("[枚举]状态：0-草稿-DRAFT、1-已发布-PUBLISH")
	protected TemplateSetStatus status;

	/**
	 * 构造一个空会员卡等级设置实体对象
	 */
	public TemplateGradeEntity(){
		super();
	}

	/**
	 * 依据其它对象的信息构造一个会员卡等级设置实体对象
	 * 
	 * @param other 其它对象
	 */
	public TemplateGradeEntity(TemplateGradeEntity other){
		super();
     	this.id = other.id;
     	this.busdId = other.busdId;
     	this.templateSetId = other.templateSetId;
     	this.gradeRule = other.gradeRule;
     	this.name = other.name;
     	this.scoreStart = other.scoreStart;
     	this.scoreEnd = other.scoreEnd;
     	this.serialNumber = other.serialNumber;
     	this.origin = other.origin;
     	this.isDowngrade = other.isDowngrade;
     	this.protectionDays = other.protectionDays;
     	this.createdBy = other.createdBy;
     	this.createdName = other.createdName;
     	this.createdTime = other.createdTime;
     	this.modifyBy = other.modifyBy;
     	this.modifyName = other.modifyName;
     	this.modifyTime = other.modifyTime;
     	this.del = other.del;
     	this.delBy = other.delBy;
     	this.delTime = other.delTime;
     	this.status = other.status;
	}


	/**
	 * 获取主键
	 * 
	 * @return id 主键
	 */
	public String getId() {
		return id;
	}
  	
	/**
	 * 设置主键
	 * 
	 * @param id 主键
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取
	 * 
	 * @return busdId 
	 */
	public String getBusdId() {
		return busdId;
	}
  	
	/**
	 * 设置
	 * 
	 * @param busdId 
	 */
	public void setBusdId(String busdId) {
		this.busdId = busdId;
	}

	/**
	 * 获取会员卡模板设置id
	 * 
	 * @return templateSetId 会员卡模板设置id
	 */
	public String getTemplateSetId() {
		return templateSetId;
	}
  	
	/**
	 * 设置会员卡模板设置id
	 * 
	 * @param templateSetId 会员卡模板设置id
	 */
	public void setTemplateSetId(String templateSetId) {
		this.templateSetId = templateSetId;
	}

	/**
	 * 获取[枚举]等级规则：0-成长值-GROWTH、1-指定条件-SPECIFIED
	 * 
	 * @return gradeRule [枚举]等级规则：0-成长值-GROWTH、1-指定条件-SPECIFIED
	 */
	public TemplateGradeGradeRule getGradeRule() {
		return gradeRule;
	}
  	
	/**
	 * 设置[枚举]等级规则：0-成长值-GROWTH、1-指定条件-SPECIFIED
	 * 
	 * @param gradeRule [枚举]等级规则：0-成长值-GROWTH、1-指定条件-SPECIFIED
	 */
	public void setGradeRule(TemplateGradeGradeRule gradeRule) {
		this.gradeRule = gradeRule;
	}

	/**
	 * 获取会员等级
	 * 
	 * @return name 会员等级
	 */
	public String getName() {
		return name;
	}
  	
	/**
	 * 设置会员等级
	 * 
	 * @param name 会员等级
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 获取成长值范围起
	 * 
	 * @return scoreStart 成长值范围起
	 */
	public Long getScoreStart() {
		return scoreStart;
	}
  	
	/**
	 * 设置成长值范围起
	 * 
	 * @param scoreStart 成长值范围起
	 */
	public void setScoreStart(Long scoreStart) {
		this.scoreStart = scoreStart;
	}

	/**
	 * 获取成长值范围止
	 * 
	 * @return scoreEnd 成长值范围止
	 */
	public Long getScoreEnd() {
		return scoreEnd;
	}
  	
	/**
	 * 设置成长值范围止
	 * 
	 * @param scoreEnd 成长值范围止
	 */
	public void setScoreEnd(Long scoreEnd) {
		this.scoreEnd = scoreEnd;
	}

	/**
	 * 获取等级编号
	 * 
	 * @return serialNumber 等级编号
	 */
	public Integer getSerialNumber() {
		return serialNumber;
	}
  	
	/**
	 * 设置等级编号
	 * 
	 * @param serialNumber 等级编号
	 */
	public void setSerialNumber(Integer serialNumber) {
		this.serialNumber = serialNumber;
	}

	/**
	 * 获取是否是初始等级：0-false-否、1-true-是
	 * 
	 * @return origin 是否是初始等级：0-false-否、1-true-是
	 */
	public Boolean getOrigin() {
		return origin;
	}
  	
	/**
	 * 设置是否是初始等级：0-false-否、1-true-是
	 * 
	 * @param origin 是否是初始等级：0-false-否、1-true-是
	 */
	public void setOrigin(Boolean origin) {
		this.origin = origin;
	}

	/**
	 * 获取是否降级 
	 * 
	 * @return isDowngrade 是否降级 
	 */
	public Boolean getIsDowngrade() {
		return isDowngrade;
	}
  	
	/**
	 * 设置是否降级 
	 * 
	 * @param isDowngrade 是否降级 
	 */
	public void setIsDowngrade(Boolean isDowngrade) {
		this.isDowngrade = isDowngrade;
	}

	/**
	 * 获取保护天数 -1代表不降级
	 * 
	 * @return protectionDays 保护天数 -1代表不降级
	 */
	public Integer getProtectionDays() {
		return protectionDays;
	}
  	
	/**
	 * 设置保护天数 -1代表不降级
	 * 
	 * @param protectionDays 保护天数 -1代表不降级
	 */
	public void setProtectionDays(Integer protectionDays) {
		this.protectionDays = protectionDays;
	}

	/**
	 * 获取创建人id
	 * 
	 * @return createdBy 创建人id
	 */
	public String getCreatedBy() {
		return createdBy;
	}
  	
	/**
	 * 设置创建人id
	 * 
	 * @param createdBy 创建人id
	 */
	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}

	/**
	 * 获取创建人
	 * 
	 * @return createdName 创建人
	 */
	public String getCreatedName() {
		return createdName;
	}
  	
	/**
	 * 设置创建人
	 * 
	 * @param createdName 创建人
	 */
	public void setCreatedName(String createdName) {
		this.createdName = createdName;
	}

	/**
	 * 获取创建时间
	 * 
	 * @return createdTime 创建时间
	 */
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}
  	
	/**
	 * 设置创建时间
	 * 
	 * @param createdTime 创建时间
	 */
	public void setCreatedTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
	}

	/**
	 * 获取修改人id
	 * 
	 * @return modifyBy 修改人id
	 */
	public Long getModifyBy() {
		return modifyBy;
	}
  	
	/**
	 * 设置修改人id
	 * 
	 * @param modifyBy 修改人id
	 */
	public void setModifyBy(Long modifyBy) {
		this.modifyBy = modifyBy;
	}

	/**
	 * 获取修改人
	 * 
	 * @return modifyName 修改人
	 */
	public String getModifyName() {
		return modifyName;
	}
  	
	/**
	 * 设置修改人
	 * 
	 * @param modifyName 修改人
	 */
	public void setModifyName(String modifyName) {
		this.modifyName = modifyName;
	}

	/**
	 * 获取修改时间
	 * 
	 * @return modifyTime 修改时间
	 */
	public LocalDateTime getModifyTime() {
		return modifyTime;
	}
  	
	/**
	 * 设置修改时间
	 * 
	 * @param modifyTime 修改时间
	 */
	public void setModifyTime(LocalDateTime modifyTime) {
		this.modifyTime = modifyTime;
	}

	/**
	 * 获取是否删除：0-false-未删除、1-true-已删除
	 * 
	 * @return del 是否删除：0-false-未删除、1-true-已删除
	 */
	public Boolean getDel() {
		return del;
	}
  	
	/**
	 * 设置是否删除：0-false-未删除、1-true-已删除
	 * 
	 * @param del 是否删除：0-false-未删除、1-true-已删除
	 */
	public void setDel(Boolean del) {
		this.del = del;
	}

	/**
	 * 获取删除人ID
	 * 
	 * @return delBy 删除人ID
	 */
	public String getDelBy() {
		return delBy;
	}
  	
	/**
	 * 设置删除人ID
	 * 
	 * @param delBy 删除人ID
	 */
	public void setDelBy(String delBy) {
		this.delBy = delBy;
	}

	/**
	 * 获取删除时间
	 * 
	 * @return delTime 删除时间
	 */
	public LocalDateTime getDelTime() {
		return delTime;
	}

	public TemplateSetStatus getStatus() {
		return status;
	}

	public void setStatus(TemplateSetStatus status) {
		this.status = status;
	}

	/**
	 * 设置删除时间
	 * 
	 * @param delTime 删除时间
	 */
	public void setDelTime(LocalDateTime delTime) {
		this.delTime = delTime;
	}

    public String toString() {
		return new StringBuilder().append("TemplateGradeEntity{").
			append("id=").append(id).
			append(",busdId=").append(busdId).
			append(",templateSetId=").append(templateSetId).
			append(",gradeRule=").append(gradeRule).
			append(",name=").append(name).
			append(",scoreStart=").append(scoreStart).
			append(",scoreEnd=").append(scoreEnd).
			append(",serialNumber=").append(serialNumber).
			append(",origin=").append(origin).
			append(",isDowngrade=").append(isDowngrade).
			append(",protectionDays=").append(protectionDays).
			append(",createdBy=").append(createdBy).
			append(",createdName=").append(createdName).
			append(",createdTime=").append(createdTime).
			append(",modifyBy=").append(modifyBy).
			append(",modifyName=").append(modifyName).
			append(",modifyTime=").append(modifyTime).
			append(",del=").append(del).
			append(",delBy=").append(delBy).
			append(",delTime=").append(delTime).
			append('}').toString();
    }

	/**
	 * 复制对象
	 * 
	 * @return 复制后的新实体对象
	 */
	public TemplateGradeEntity copy() {
		return new TemplateGradeEntity(this);
	}

    /** 主键 */
	public static final String COL_ID = "id";

    /**  */
	public static final String COL_BUSD_ID = "busd_id";

    /** 会员卡模板设置id */
	public static final String COL_TEMPLATE_SET_ID = "template_set_id";

    /** [枚举]等级规则：0-成长值-GROWTH、1-指定条件-SPECIFIED */
	public static final String COL_GRADE_RULE = "grade_rule";

    /** 会员等级 */
	public static final String COL_NAME = "name";

    /** 成长值范围起 */
	public static final String COL_SCORE_START = "score_start";

    /** 成长值范围止 */
	public static final String COL_SCORE_END = "score_end";

    /** 等级编号 */
	public static final String COL_SERIAL_NUMBER = "serial_number";

    /** 是否是初始等级：0-false-否、1-true-是 */
	public static final String COL_ORIGIN = "origin";

    /** 是否降级  */
	public static final String COL_IS_DOWNGRADE = "is_downgrade";

    /** 保护天数 -1代表不降级 */
	public static final String COL_PROTECTION_DAYS = "protection_days";

    /** 创建人id */
	public static final String COL_CREATED_BY = "created_by";

    /** 创建人 */
	public static final String COL_CREATED_NAME = "created_name";

    /** 创建时间 */
	public static final String COL_CREATED_TIME = "created_time";

    /** 修改人id */
	public static final String COL_MODIFY_BY = "modify_by";

    /** 修改人 */
	public static final String COL_MODIFY_NAME = "modify_name";

    /** 修改时间 */
	public static final String COL_MODIFY_TIME = "modify_time";

    /** 是否删除：0-false-未删除、1-true-已删除 */
	public static final String COL_DEL = "del";

    /** 删除人ID */
	public static final String COL_DEL_BY = "del_by";

    /** 删除时间 */
	public static final String COL_DEL_TIME = "del_time";

	public static final String COL_STATUS = "status";

}
